#ifndef PAGEMANAGER_HPP
#define PAGEMANAGER_HPP

#include "SDL.h"
#include "Page.hpp"

class PageManager {
    public:
        PageManager(AppState* app_state);
        ~PageManager();

        void first_page(Page* first_page);

        // 由外部调用
        void request_exit();
        void request_page(Page* new_page);

        // 由主程序调用
        bool ready_to_exit() {return exit_requested;}

        void do_step();     // 在这里换页（调用完 Page->step() 之后）
        void do_draw();
    private:

        AppState* app_state;
        Page* new_page;
        Page* current_page;
        bool exit_requested;
};

#endif
